#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "windows.h"
#include "modulesmanager.h"

/*
 * @file mainwindow.h
 * @name XXXXXX
 * @brief XXXXXXXXXX
 * ＠date xxxx.xx.xx
 */

QT_BEGIN_NAMESPACE

namespace Ui {
class MainWindow;
}

QT_END_NAMESPACE


class  Form;

class MainWindow : public QMainWindow {
    Q_OBJECT

public:
    void dealMsg();  // 槽函数，处理对方发过来的数据（槽函数的形式与信号保持一致，没有参数）
    void sendfunc(QString ip, QString port, QString content);
    QVector< QString >hadState;
    int ipsame = -1; // 每次到来的ip是否相同
    int ips = -1;
    int btn5 = 1;
    QHash<QString, int> m_time;
    virtual void timerEvent(QTimerEvent *event);  //定时器

private:
    //socket对象
    QUdpSocket *udpSocket;

public slots:

private slots:
    void on_close_clicked();
    void on_min_clicked();
    void on_homebtn_clicked();
    void on_right_manager_clicked();

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

    void SetWindow();            // 设置Window页面样式
    void InitElem();             // 初始化成员变量
    void LoadModules();          // 加载模块
    void ShowModules();          // 展示模块，包括顶部按钮和导航页
    QString GetMyIP();           // 获取本机IP地址

    bool rightIsOpen;            // 右侧管理栏是否打开
    QString btnStyleClicked;     // 顶部按钮点击后样式
    QString btnStyleHover;       // 顶部按钮鼠标放置样式
    ModuleBtn* m_addbutton;      // 导航页 增加 按钮

    ModulesManager* m_manager;   // 模块管理对象
    VME m_vme;                   // 模块管理返回值
    int m_nowIndex;              // 当前打开的widget
};

#endif // MAINWINDOW_H
